package com.pcbly.web.components.utils.jfreechart;

import java.awt.Color;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

public class CusBarChart2D  extends AbstractChartFont {
	/**
	 * 获取要绘制的图标的相关信息
	 * @return
	 */
	public  CategoryDataset getDataSet() {
		String str = "男生人数";
		String str2 = "女生人数";
		// 创建横坐标要显示的内容
		String s1 = "湖南";
		String s2 = "湖北";
		String s3 = "广东";
		String s4 = "上海";
		String s5 = "江苏";

		// 构建生成图片所需要的集合
		DefaultCategoryDataset defaultCategoryDataset = new DefaultCategoryDataset();
		//构造男生人数
		defaultCategoryDataset.addValue(300, str, s1);
		defaultCategoryDataset.addValue(300, str, s2);
		defaultCategoryDataset.addValue(450, str, s3);
		defaultCategoryDataset.addValue(190, str, s4);
		defaultCategoryDataset.addValue(230, str, s5);
		//构造女生人数
		defaultCategoryDataset.addValue(200, str2, s1);
		defaultCategoryDataset.addValue(340, str2, s2);
		defaultCategoryDataset.addValue(300, str2, s3);
		defaultCategoryDataset.addValue(290, str2, s4);
		defaultCategoryDataset.addValue(200, str2, s5);
		return defaultCategoryDataset;
	}
	/**
	 * 根据数据设置图表的相关信息
	 * @param categoryDataset
	 * @return
	 */
	public  JFreeChart createJFreeChart(CategoryDataset categoryDataset) {
		/**
		 * 设置图表的相关信息,其参数依次为：
		 * 图表标题,纵坐标显示提示,横坐标显示提示,要显示的数据
		 * 设置要显示图标柱状的横向或纵向.HORIZONTAL表示纵向,VERTICAL表示横向
		 * 后面三个boolean型的参数：
		 * 第一个表示是否显示柱状图例,true为显示,false为不显示
		 */
		JFreeChart chart = ChartFactory.createBarChart("男生女生人数对照", "省份", "数量",
				categoryDataset, PlotOrientation.VERTICAL, true, true, false);
		this.configFont(chart);
		// 设置背景颜色
		chart.setBackgroundPaint(Color.WHITE);
		CategoryPlot cateforyPlot = chart.getCategoryPlot();
		cateforyPlot.setBackgroundPaint(Color.WHITE);
		cateforyPlot.setDomainGridlinePaint(Color.WHITE);
		// 设置是否可见
		cateforyPlot.setDomainGridlinesVisible(true);
		// 设置柱状的颜色
		cateforyPlot.setRangeGridlinePaint(Color.BLUE);
		return chart;
	}
	public JFreeChart index(){
		CategoryDataset dataset=getDataSet();
		return createJFreeChart(dataset); 
	}
}
